﻿using System.Collections.Generic;
using System.Runtime.Serialization;

namespace IMDBApi.Contracts.Entities.Person.MainDetail
{
    [DataContract]
    public class MainDetail
    {
        [DataMember(Name = "exp")]
        public int Exp { get; set; }

        [DataMember(Name = "data")]
        public Data Data { get; set; }
    }

    [DataContract]
    public class Data
    {
        [DataMember(Name = "photos")]
        public List<Photo> Photos { get; set; }

        [DataMember(Name = "birth")]
        public Birth Birth { get; set; }

        [DataMember(Name = "real_name")]
        public string RealName { get; set; }

        [DataMember(Name = "has")]
        public List<string> Has { get; set; }

        [DataMember(Name = "known_for")]
        public List<KnownFor> KnownFor { get; set; }

        [DataMember(Name = "name")]
        public string Name { get; set; }

        [DataMember(Name = "image")]
        public Image Image { get; set; }

        [DataMember(Name = "nconst")]
        public string Nconst { get; set; }

        [DataMember(Name = "bio")]
        public string Bio { get; set; }
    }

    [DataContract]
    public class Photo
    {
        [DataMember(Name = "image")]
        public Image Image { get; set; }
    }

    [DataContract]
    public class Birth
    {
        [DataMember(Name = "date")]
        public Date Date { get; set; }

        [DataMember(Name = "place")]
        public string Place { get; set; }
    }

    [DataContract]
    public class Image
    {
        [DataMember(Name = "width")]
        public int Width { get; set; }

        [DataMember(Name = "url")]
        public string Url { get; set; }

        [DataMember(Name = "height")]
        public int Height { get; set; }
    }

    [DataContract]
    public class KnownFor
    {
        [DataMember(Name = "title")]
        public Title Title { get; set; }

        [DataMember(Name = "attr")]
        public string Attr { get; set; }
    }

    [DataContract]
    public class Title
    {
        [DataMember(Name = "tconst")]
        public string Tconst { get; set; }

        [DataMember(Name = "type")]
        public string Type { get; set; }

        [DataMember(Name = "title")]
        public string Titles { get; set; }

        [DataMember(Name = "image")]
        public Image Image { get; set; }

        [DataMember(Name = "year")]
        public string Year { get; set; }
    }

    [DataContract]
    public class Date
    {
        [DataMember(Name = "normal")]
        public string Normal { get; set; }
    }
}